/*
    Buffer(缓冲区)
        - Buffer的结构和数组很像，操作方法也和数组类似
        - 数组中不能存储二进制的文件，而Buffer就是专门用来存储二进制数据
        - 使用buffer不需要引入模块，直接使用即可
        - 在buffer中存储的都是二进制数据，但是在显示时都是以16进制的形式显示
        - Buffer的大小一旦确定，则不能修改
 */

let str = "hello 陈仙生";

// 将一个字符串保存到buffer中
let buf = Buffer.from(str);

console.log(buf);
console.log(buf.length); // 占用内存的大小
console.log(str.length); // 字符串的长度

// 创建一个指定大小的buffer
let buf2 = Buffer.alloc(10); // 10个字节
console.log(buf2.length);
// 通过索引，来操作buf2中的元素
buf2[0] = 88;
buf2[1] = 10;
buf2[2] = 255;
buf2[10] = 15;
console.log(buf2);

// 只要是数字，在控制台或页面中输出一定是10进制
console.log(buf2[2]); // 255
console.log(buf2[2].toString(16)); // ff

// Buffer.allocUnsafe(size) 创建一个指定大小的buffer，但buffer中可能含有敏感数据
let buf3 = Buffer.allocUnsafe(10);
console.log(buf3);

// buf.toString() 将缓冲区中的数据转换成字符串
let buf4 = Buffer.from("我是陈仙生");
console.log(buf4.toString());










